In the field of transaction processing, units of work are generally required to have what are known as the ACID properties. ACID is an acronym representing the four unit of work properties of: Atomicity, Consistency, isolation and Durability. Atomicity requires that either all the operations of the unit of work must be seen to occur or none must be seen to occur. Consistency requires a unit of work to maintain the consistency of the data on which it operates. Isolation requires a unit of work not to read the intermediate results of another transaction. Durability requires the results of a committed unit of work to be made permanent and that the other ACID attributes can be guaranteed even in the event of system failure.
FIG. 1 is a block diagram of a prior art transactional system (300) having a first data processing system (105) comprises an owning application (110) and a second data processing system (115) comprising a transaction co-ordinator (120) for executing transactions and managing a resource, such as a database (125). There is also shown a third data processing system (130) comprising a first participant (131) for managing a first resource (e.g. a database 135). There is also shown a fourth data processing system (140) comprising a second participant (141) for managing a second resource (e.g. a database 145). The databases are used to store plurality of logs to which the transaction co-ordinator (120), the first participant and the second participant can respectively write one or more log records (i.e. wherein a log record comprises data associated with a transaction). It should be understood that components involved in a transaction (i.e. the owning application (110), the transaction co-ordinator (120), Participant 1 and Participant 2) can reside on any data processing system and that the components can all reside on the same data processing system.
The data can be used to facilitate recovery in the event of failure associated with a system on which the transaction co-ordinator and/or a participant are executing. It will be appreciated that such a failure may relate to a loss of power or the failure of a hardware device such as onboard memory or a DASD holding a database.
In order to provide this functionality it is necessary for the transaction co-ordinator to maintain a non-volatile log which survives a system failure and which records the progress of each transaction. For example the transaction co-ordinator will maintain in the log progressive states of the transaction. At certain points in the transaction the transaction must be held while the transaction co-ordinator ensures that a log record has been written to non-volatile storage.
If a participant fails, the participant may need to be re-started in order to advance a transaction. It will be appreciated that the lapsed time taken to complete a restart is important to any business.